import React, { Component } from 'react'
import store from '../../redux/store'
import {createIncrementAction, createDecrementAction} from '../../redux/count_action'

export default class Count extends Component {

  state = { carName: '奔驰c63' }
  
  // 修改数据重新渲染
  // componentDidMount() {
  //   store.subscribe(() => {
  //     this.setState({})
  //   })
  // }

  // 加法
  increment = ()=>{
  
    const { value } = this.selectNum
    store.dispatch(createIncrementAction(value*1))

  }
  // 减法
  decrement = ()=>{
    const { value } = this.selectNum
    store.dispatch(createDecrementAction(value*1))
  }
  // 奇数加
  incrementIfOdd = ()=>{
    const { value } = this.selectNum
    const  count  = store.getState()
    if (count % 2 !== 0) {
      console.log(11, count);
      store.dispatch(createIncrementAction(value*1))
    }
  }
  incrementAsync = ()=>{
    const { value } = this.selectNum

    setTimeout(() => {
      store.dispatch(createIncrementAction(value*1))
    }, 500)
  }

  render() {
    return (
      <div>
        <h2>求和为： {store.getState()}</h2>
        <select ref={c => this.selectNum = c}>
          <option value="1">1</option>
          <option value="2">2</option>
          <option value="3">3</option>
        </select>&nbsp;
        <button onClick = { this.increment}>+</button>&nbsp;
        <button onClick = { this.decrement}>-</button>&nbsp;
        <button onClick = { this.incrementIfOdd}>求和为奇数再加</button>&nbsp;
        <button onClick = { this.incrementAsync}>异步加</button>
      </div>
    )
  }
}
